package com.xiaoxiaoniu.airoleplay.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

/**
 * 聊天请求数据传输对象
 * 用于封装用户发送给AI角色的聊天请求信息
 */
@Setter
@Getter
public class ChatRequest {

    // Getters and Setters
    /**
     * 角色名称
     */
    @JsonProperty("role")
    private String role;

    /**
     * 用户消息内容
     */
    @JsonProperty("message")
    private String message;

    /**
     * 会话ID，用于标识对话上下文
     */
    @JsonProperty("conversation_id")
    private String conversationId;

    /**
     * 无参构造函数
     */
    public ChatRequest() {}

    /**
     * 带角色和消息的构造函数
     * 
     * @param role 角色名称
     * @param message 消息内容
     */
    public ChatRequest(String role, String message) {
        this.role = role;
        this.message = message;
    }

    /**
     * 带角色、消息和会话ID的构造函数
     * 
     * @param role 角色名称
     * @param message 消息内容
     * @param conversationId 会话ID
     */
    public ChatRequest(String role, String message, String conversationId) {
        this.role = role;
        this.message = message;
        this.conversationId = conversationId;
    }

    @Override
    public String toString() {
        return "ChatRequest{" +
                "role='" + role + '\'' +
                ", message='" + message + '\'' +
                ", conversationId='" + conversationId + '\'' +
                '}';
    }
}